package __二叉树

/*
https://leetcode.cn/problems/sum-of-left-leaves/

404. 左叶子之和
给定二叉树的根节点 root ，返回所有左叶子之和。

示例 1：
输入: root = [3,9,20,null,null,15,7]
输出: 24
解释: 在这个二叉树中，有两个左叶子，分别是 9 和 15，所以返回 24

示例 2:
输入: root = [1]
输出: 0
*/
func sumOfLeftLeaves(root *TreeNode) int {

	//如果根节点为nil, 返回0
	if root == nil {
		return 0
	}

	//递归调用左节点
	leftValue := sumOfLeftLeaves(root.Left) // 左

	if root.Left != nil && root.Left.Left == nil && root.Left.Right == nil {
		leftValue = root.Left.Val // 中
	}

	rightValue := sumOfLeftLeaves(root.Right) // 右

	return leftValue + rightValue
}
